SUPER FAMICOM WARS // English Translation // mb-sfwe-v1.1 (2018.07.21)
-------------------------------------------------------------------------------

Almost 20 years after its original Japanese release, the immediate ancestor
to the beloved tactics game Advance Wars is finally playable in English.

Super Famicom Wars was developed by Intelligent Systems, published by Nintendo
and first released on May 1 1998. The game was available exclusively via the
Nintendo Power rewritable cartridge system, making it one of the hardest Super
Famicom titles to obtain. Earlier that spring, several teaser/demo versions
were broadcast on the Satellaview service, each featuring one map from the
full game. Super Famicom Wars has also since been released on the Wii and Wii U
as part of the Virtual Console library - again, exclusively in Japan.

Looking at the publishing schedule across the Wars series, it's almost like
Nintendo didn't want the franchise to accumulate a global fan base. It's
predecessor, Famicom Wars for the original Famicom, was also never released
outside of Japan and that game was released in the console's heyday. With Super
Famicom Wars coming out so late in its host console's life cycle, it was likely
never considered for a western release at all. The next game in the series -
Advance Wars for the Game Boy Advance - was released, this time exclusively for
western audiences, three years later. Only several years after that was the game
made available in Japan, and as part of a compilation.

But, despite all this, the Wars games did grow a sizable audience from the two
GBA titles, which were then followed up with two more games for the Nintendo DS
in relatively quick succession. The two latter games dropped the light-hearted
nature to concentrate on a darker storyline and tone. Since then, not much has
been heard about the series' future from either Nintendo or Intelligent Systems.
This is a shame, really, since the Wars series' upbeat take on turn-based
military strategy is uniquely charming and accessible.

So, in a way, releasing this translation makes a new game in the Wars franchise
available to the English speaking world for the first time in almost ten years.
And while the series arguably peaked with its Game Boy Advance iterations,
Super Famicom Wars offers a few novel features and enough flavor to make it
stand out as a great game in its own right.


-------------------------------------------------------------------------------
PATCH NOTES

The game has been fully translated and made playable wholly in English. If you
do encounter any bugs or untranslated content, please send a detailed report to
optiroc at gmail dot com. When mining the ROM, some unreachable content has been
found, which from the looks it is mostly related to debugging and internal
playtesting. Some, but not all, of these things have also been translated.

The patch has been tested on Japanese, European and American SNES/SFC
hardware using the SD2SNES and Super Everdrive flash cartridges. It should
also work on most emulators, and has been confirmed working via "Canoe" on the
SNES Classic Mini retro console.

Included with the release are patches in BPS and VCDIFF formats. An IPS format
patch is not supplied since it doesn't support integrity checking of the base
file – not ideal with the numerous demo versions available of this game. For
command line users, use xdelta3 to apply the VCDIFF patch:

# xdelta3 -d -s base.sfc mb-sfwe-v1.0.vcdiff patched.sfc

If you prefer a UI, there are several free programs available for different
operating systems that support BPS patches, including "Floating IPS (Flips)"
for Windows and "MultiPatch" for macOS.

Apply the patch to this base ROM image:

Name          Super Famicom Wars (Japan) (NP).sfc
Size          2097152 bytes
ROM Checksum  E5EF
CRC32         D6EACBEA
MD5           D88B4ED9A9D834696357CE4C9EF95359
SHA1          24279CA4B598F4CAA0CF4D7FA0A423F9E51BB6F7
SHA256        3027150B4B9C7D5D991FEDA0BB8CA694245FA025C71EC921AC13071FE4584B8B

The resulting file should have the following checksums:

ROM Checksum  7F1E
CRC32         45CBDF8D
MD5           96501E0E8D2F7435AC6AC5727571F8BB
SHA1          E8309511F7BB903059DE7E166C2D08CD971792E5
SHA256        84E9F52266D36DEE9FAB12211DED5D0AD6DB59D98B652A5EB1E5BD9933AEF0C3

-------------------------------------------------------------------------------
TRANSLATION NOTES

The translation is heavily informed by the naming conventions used in the game's
GBA sequel, so Advance Wars players should feel quite at home here. The most
significant departures from AW nomenclature are below:

AA Tank    This unit is called A-AIR in Advance Wars, but with this game also
           featuring an Anti-Air Artillery unit, something more specific was
           needed to differentiate between the two. AA Tank is the more literal
           translation and fits the tight on-screen space restrictions nicely.
Flak Gun   This unit is unique to Super Famicom Wars and would literally be
           translated as "Anti-Air Artillery". Flak Gun (or "Flak" for short)
           was chosen based on the overarching goal to find an easily
           distinguishable, non-abbreviated name for every unit.
Striker    Another unit exclusive to Super Famicom Wars, known in some old
           FAQs as Assault Fighter. Looking at real world combat aircraft
           classifications, more fitting names would be either Attacker or
           Strike Fighter. Striker was chosen as a short form of Strike
           Attacker, again for distinctiveness and to avoid abbreviations.

Red Star   This army is called Orange Star in the AW series, since Red Star
           was deemed too political being a reference to communism in the real
           world. Using Orange Star was never really a consideration for this
           translation – its units are red and the UI while playing with the
           army is red.
Disband    The Delete command is called Disband here, one of several small
           touches to keep the language more "in-universe".

Map Names  Most names are pulled from the Advance Wars localization, but
           there are a few exceptions. Most notably, the first three maps in
           the Classic campaign have been named to continue the food theme from
           the original Japanese. So here, we have Bean Island, Donut Island and
           Onigiri instead of the less thematic Bean Island, Crater Isle and
           Triangles.


-------------------------------------------------------------------------------
GAMEPLAY NOTES

Super Famicom Wars features a pretty extensive in-game help system which
is fully localized. We highly recommend any new players to check it out!

A couple of things worth noting for newcomers right off the bat:

- The save system behaves much like a modern game: You can save at any point
  in the game using the "Save" command in the in-game menu. The save is a
  snapshot of the current game state down to the last detail, and can be
  recalled not only after resetting/power cycling the console but also via
  the in-game "Load" command.

- While thin on exposition, the game's two 2 player modes (Classic Maps
  and New Maps) offer a campaign-like experience. The goal is to occupy all
  15 maps, at which point a final "boss map" with pre-deployed units is
  unlocked. There are two different final maps for each mode, based on the
  opposing army.

- Although you can call up the Options screen from within the game, most
  options can only be adjusted when you create a New Game (ie. when starting
  a new campaign). Only the sound and animation options can be changed
  after the initial game setup.


Some notable differences compared to subsequent Advance Wars titles:

- The "Level Up" gameplay option enables an experience system unique
  to this game within the series. Highly recommended!
- You cannot deploy new units at captured bases.
- Transport Units consume their turn when loaded.
- Rivers can be traversed by all Naval Units.
- Helicopters need to land to load or drop units, so those actions can't
  be performed on Woods and Mountains.
- The Train is pretty awesome! (Only available in the "New Maps" mode.)


-------------------------------------------------------------------------------
CREDITS

Commander in Chief .............. David 'optiroc' Lindecrantz
                                      Reverse Engineering
                                      Programming
                                      Translation
                                      Graphics
                                      Game Specific Tools

Signal Intelligence ....,........ Anders 'breakin' Lindqvist
                                      Reverse Engineering Tools

Communications Corps ....,....... Lee Hyde
                                      Main Writer
                                  Sora Aoki
                                      Interpreter
                                  Dylan V
                                      Fact Checker

Covert Operations ..........,.... Johan 'Spot' Samuelsson
                                  Dieter von Laser
                                  bubbla
                                  Grahf
                                  ChronoMoogle


-------------------------------------------------------------------------------
FIELD JOURNAL

David's Notes:

Releasing a proper Super Famicom game translation has been on my bucket list
since I first got acquainted with the phenomenon through the works of Tomato,
Aeon Genesis, DeJap, J2e et al at the turn of the millennium. And while I
tinkered with it a bit back then, I never got too far into a project before
realizing it was too much (and really, too hard) work for me to tackle, and
more often than not I realized that the work had already been done by someone
else.

Fast forward to 2012. The arrival of SD2SNES sparked new interest in SNES
hacking for me, and I realized that for some peculiar reason Super Famicom
Wars had still not been translated. Being a huge Advance Wars fan I thought
this had to be rectified, so I spent some weeks in January to February of that
year reverse engineering parts of the game. Progress went rather well; the
compression algorithm was easy enough to figure out, and the core text plotting
routines were also rather straight forward. But when moving to bigger picture
things – trying to figure out how the game worked on a higher level – I hit a
brick wall. Full ROM disassembly is rather tricky on the SNES, and browsing
noisy unannotated trace logs were a slow and tedious process. So I concluded
that better tools were needed, and the project was put on hold indefinitely.

Come late spring 2017, several other attempts at translating Super Famicom
Wars had come and gone. I thought that now, with a couple of years of
expanded experience in general software tinkering, maybe I could pull of a
proper reverse engineering effort of this game. And by sheer coincidence,
at a local "demo scene" beer night a fortunate turn of events began to
unravel! I talked about console hacking with Anders "breakin" Lindqvist, a
friend who frequents these events and usually have something SNES related
going on. While neither he or I had too much specific going on – I believe
I had just tinkered a bit with the SNES Mouse, and he was probably on the
lookout for a project after putting a hardware hacking project on hold – so
we talked about old projects that had fizzled out instead. And we realized
that we had one abandoned project each that might just mesh up perfectly.

Enter "snestistics"! Anders' project started out, at roughly the same time as
my first attempt at Super Famicom Wars hacking, as a reverse engineering tool
for Zelda 3. Intrigued by the prospect of using the concepts on a game that
was pretty much unexplored territory, he quickly tailored the tool for the
needs we identified with SFW. Soon enough we had a tool that not only produced
clean annotated disassembly, but also callstacks with function parameters,
memory usage reports and much more. After a while we knew all about the game
needed to take full control over the text, UI and DMA systems. I started
writing some tools to extract data from the game, while Anders continued
adding some truly mindblowing features to snestistics (which will hopefully
be applied to some other game soon enough!).

After a very exciting R&D period with not much work done on the actual game,
it was time to actually implement *all the things*: custom string decoder, text
renderer and DMA system had to be programmed and patched in, along with several
small improvements to the original UI code. Not to mention actually translating
the text and localizing a sizable chunk of graphics.

And here we are: A couple of months later the TODO list is empty and the
game is fully translated and playable! During this final phase of the project
I had some great support from a small crowd of beta testers, who not only
found some obscure (and not so obscure) bugs but also offered great feedback
on unit naming and the text contents in general. Especially Lee Hyde who stepped
up and ended up as "Main Writer", carefully rewriting more or less the entirety
of my initial (pretty rough) translation.


Anders' Notes:

"What are you working on now", David asked. I usually answer this question
by describing my latest personal project that I am working on, projects that
seldom amounts to anything. Like that time 5 years ago when I wrote a tool
to reverse engineer 'A Link to the Past' for the Super Nintendo only to find
out that someone had a already done just that. That time I just pushed my tool
to github and never touched it again. This time I didn't have a personal
project so I said that maybe it would be fun to do something with someone for
once. I asked David to tell me everything relevant on his bucket list and he
answered "secret project X and an English translation of Super Famicom Wars".
David had told me about the SFW project before - mostly around 5 years ago when
he gave it up - and we even speculated if my tools could be used.
I told David that I'm not touching "secret project X" with a ten-foot pole
but let's do Super Famicom Wars! And so we did. At this time I had never played
any games in the Wars series and I had never heard of this game before!

It turned out that my tool from 5 years ago already in its current state was
almost enough to unblock David. By being able to get a really nice assembler
source code of the game lessened the cognitive load of reverse engineering.
When things became hard again I and David came up with new ways to simplify.
Later a mode where you could list all 'functions' being called and a way
to custom print function parameters unlocked was added. It was really fun
using it on a game that hadn't been reverse engineered before; it felt like
we were unlocking the secrets of the game, things nobody but the original
developers had seen. That is the benefit of attacking an obscure game!

Then one day David simply understood the game. Reverse engineering was over.
I had one major feature almost done that would have been awesome but it was
never needed. In the end my tool was only there to push David over the
threshold. After this I mostly cheered on, very happy that David persevered
and that he managed to get other capable people involved with the actual
translation.

I am continuing work on my tool at https://github.com/breakin/snestistics. It
is not ready for general consumption just yet but hopefully it can help
push more reverse engineers over the threshold so that they don't need the tool
anymore since they now understand the game itself. I am very proud that I was
part of this project that in the end actually was finished!


Lee's Notes:

It's ironic that for the self-styled grammar/literary Nazi on this project, I'm
the guy who at one point wondered if we should consider renaming the CO who is
very clearly styled on a certain historical dictator. While deciding not to was
one of the many right calls that David made for this game, you can still blame
me if you're a Japanese speaker and notice anything that isn't a direct 1:1
translation of the original.  That's because a lot of it very much isn't - and
deliberately so.

We hope, however, that you'll approve of the writing choices we've made. The
Help section in particular was so sparse in some places and repetitious in
others that we decided to rebuild it using the Japanese as a starting point.
With Advance Wars being my favourite game of all time, we tried to stay true to
the spirit of the series and even managed to add in some extra rules in the game
which the original developers hadn't mentioned. This means we've gone further
than just a translation and in this respect have instead actually localised the
game for an English-speaking audience.

My first project of this kind, it's been a fascinating task to produce text
which is grammatically correct, fun to read, informative, stays true to the game
and, as much as anything else, all fits within a limited pixel count! There are
still a few more alterations I'd put forward for a future release but, for the
most part, we think that we've absolutely done justice to a wonderful game that
I only first discovered two months before this release. David's been a fantastic
Commander-in-Chief to serve under and I'm honoured to have been involved in a
piece of gaming history in this small way.


------------------------------------------------------------------------------
KNOWN BUGS

- Under certain circumstances when having Quick Battles enabled and Quick Map
  disabled, the Quick Battle window will exhibit some graphical bugs: The top
  "Level" icon will be glitched, as well as the jumping "Level Up" text if a
  unit has the good/bad luck to level up during that battle.

  This is a bug in the original game as well, and I may get around to fix it
  at some point if I find a way to consistently reproduce it.


-------------------------------------------------------------------------------
VERSION HISTORY & FEEDBACK

v1.1 (2018.07.21) - "20TH ANNIVERSARY WHAT?"
- Initial source code release, available here:
    https://gitlab.com/optiroc/SuperFamicomWars-Translation
- Text renderer: On (extremely) rare occasions the in-game menu will render
  garbage. I believe it is now fixed, but it's hard to tell since it is so
  hard to reproduce the bug.
- Several minor text and graphics tweaks.

v1.0 (2017.12.24) - "HELLO WARS!"
- Initial public release.


If you find any odd bugs or inconsistencies within the game, please send as
detailed information as possible to optiroc at gmail dot com. If possible,
provide a save game with instructions on how to get to that bug/issue from
the point of the save.


Thank you for playing!
